home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / parallel / execlp.c < prev    next >
Text File  |  1992-04-11  |  2KB  |  68 lines

  1. /*-------------------------------------------------------------------*/
  2. /*----Upgrade to predu.c in muProlog to execlp. Needs additions to   */
  3. /*----init.c and init.h :                                            */
  4. /*----init.c - fassert(find(7,"execlp"), (Ptr) p_execlp, -1, 0);     */
  5. /*----init.h - ,p_execlp()                                           */
  6. /*----                                                               */
  7. /*----Usage :-execlp(+File_path,+Arg0,+Arg1,+Arg2,+Arg3,+Arg4).      */
  8. /*----i.e. Must have 5 command line arguments                        */
  9. /*----                                                               */
  10. /*----Written by Geoff Sutcliffe 7/12/89                             */
  11. /*-------------------------------------------------------------------*/
  12. p_execlp(t,l)
  13. Ptr t;
  14. levtype l;
  15. {
  16. Ptr     t_file,t_arg0,t_arg1,t_arg2,t_arg3,t_arg4;
  17. levtype l_file,l_arg0,l_arg1,l_arg2,l_arg3,l_arg4;
  18.  
  19. findbind((Ptr)targ(1,t),l,&t_file,&l_file);
  20. if (!IsAtom(t_file))
  21.     {
  22.     plerror(EECONST);
  23.     return(ERROR);
  24.     }
  25.  
  26. findbind((Ptr)targ(2,t),l,&t_arg0,&l_arg0);
  27. if (!IsAtom(t_arg0))
  28.     {
  29.     plerror(EECONST);
  30.     return(ERROR);
  31.     }
  32.  
  33. findbind((Ptr)targ(3,t),l,&t_arg1,&l_arg1);
  34. if (!IsAtom(t_arg1))
  35.     {
  36.     plerror(EECONST);
  37.     return(ERROR);
  38.     }
  39.  
  40. findbind((Ptr)targ(4,t),l,&t_arg2,&l_arg2);
  41. if (!IsAtom(t_arg2))
  42.     {
  43.     plerror(EECONST);
  44.     return(ERROR);
  45.     }
  46.  
  47. findbind((Ptr)targ(5,t),l,&t_arg3,&l_arg3);
  48. if (!IsAtom(t_arg3))
  49.     {
  50.     plerror(EECONST);
  51.     return(ERROR);
  52.     }
  53.  
  54. findbind((Ptr)targ(6,t),l,&t_arg4,&l_arg4);
  55. if (!IsAtom(t_arg4))
  56.     {
  57.     plerror(EECONST);
  58.     return(ERROR);
  59.     }
  60. /*----The last argument is not working, don't know why               */
  61. execlp(dname(atdict(t_file)),dname(atdict(t_arg0)),dname(atdict(t_arg1)),
  62. dname(atdict(t_arg2)),dname(atdict(t_arg3)),dname(atdict(t_arg4)),NULL);
  63.  
  64. return(FAIL);
  65. }
  66. /*-------------------------------------------------------------------*/
  67.  
  68.